package com.jungle.task.executor;

import com.jungle.task.Task;
import com.jungle.task.parameter.ConvertTaskParameter;
import com.jungle.task.result.ConvertTaskResult;
import org.springframework.util.DigestUtils;
import org.springframework.util.StringUtils;

import java.util.Objects;

/**
 * @author 李岩 at 2021/10/22.
 */
public class DefaultConvertTaskExecutor implements ConvertTaskExecutor{
    @Override
    public int getOrder() {
        return 0;
    }

    /**
     * 执行任务
     *
     * @param task 任务
     * @return res
     */
    @Override
    public ConvertTaskResult execute(final Task<ConvertTaskParameter, ConvertTaskResult> task) {
        return Objects.isNull(task.getParameter()) || StringUtils.isEmpty(task.getParameter().getOriginal()) ?
            null :
            new ConvertTaskResult(DigestUtils.md5DigestAsHex(task.getParameter().getOriginal().getBytes()) + System.currentTimeMillis());
    }
}
